-
Posts
1,607 -
Joined
-
Last visited
-
Days Won
20
Peter Knight last won the day on July 28
Peter Knight had the most liked content!
About Peter Knight
- Currently Viewing Forums Index
Contact Methods
-
Website URL
https://www.peterknight.digital
Profile Information
-
Gender
Male
-
Location
Dublin, Ireland.
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
Peter Knight's Achievements
-
Peter Knight started following Stuck after adding Database info on Install , Weekly update – 7 August 2026 , Release Notes in a Consistent Location and 6 others
-
Please take all the time you need and more. Will be thinking of you all and hoping for the best.
-
Release Notes in a Consistent Location
Peter Knight replied to Arcturus's topic in Wishlist & Roadmap
It’s a very simple task these days too. I have all changelog and release notes created automatically via a loop. With a few editing guidelines and some samples, it pretty much runs on auto pilot. Finish feature > automation script reads > rules etc -
Hey everyone It's been a while since I posted an update, but PromptWire is now at v1.12.7. That's 47 MCP tools to help you build and maintain ProcessWire sites from Cursor — pull content, edit locally, push to production, and keep local and live in sync, all in plain language with dry-run previews first. Since the v1.9 update in April, the focus has been cross-environment reliability, schema-aware fieldgroup edits, page-asset sync, and closing workflow gaps that only show up during real deploys. Full docs: https://www.peterknight.digital/docs/promptwire/v1/ GitHub: https://github.com/PeterKnightDigital/PromptWire-MCP The list below is AI-generated from the changelog... v1.10 — Page assets and cross-environment IDs pw_page_assets Syncs all files stored in a page's on-disk asset folder between your local dev site and production. What this means for you: You can push and pull page files — including MediaHub uploads and anything else stored outside a normal File/Image field — without SFTP or manual file copying. If a download page or blog post has attachments managed by a module rather than a standard field, this tool still finds them. You can compare, inventory, upload, download, or delete, in either direction, with a dry-run preview first. Try it: "Sync the assets for the About page to production, including any MediaHub files. Dry-run first." Per-environment ids block in page.meta.json Each page's sync metadata now remembers the page ID on local and on remote separately, instead of one ID that gets overwritten every time you pull. What this means for you: You can pull from production, edit locally, and push back without the sync system accidentally targeting the wrong page because the ID in the meta file changed. Local and remote IDs often differ between environments — PromptWire now tracks both side by side. Try it: "Pull the About page from production, rewrite the body to be more concise, then push the changes to both local and production." Path-first push with ID verification When pushing a page, PromptWire looks up the page by its URL path first, then checks that the ID still matches what the meta file expects. What this means for you: If someone deleted and recreated a page at the same URL, or your meta file is from a different site, the push stops with a clear error instead of silently updating the wrong page. You get told exactly what went wrong and how to fix it. Try it: "Push the About page to production. If there's an ID mismatch, explain the error and tell me whether I should re-pull or force push." idDriftPages in compare results Site compare now lists every page where local and remote have different page IDs, not just a count. What this means for you: When comparing local vs production, you can see which pages have diverged — useful for deciding whether the difference is harmless (two fresh installs with different ID sequences) or a sign something needs fixing. Try it: "Compare my local site against production and list every page with ID drift between the two environments." v1.11 — Template fieldgroup push pw_template_fields_push Adds, removes, or reorders fields on a template's fieldgroup, and sets per-template overrides like labels, required flags, and column widths — without changing the field definitions themselves. What this means for you: You can ask Cursor to add, remove, or reorder fields on a template with a dry-run preview — no clicking through the ProcessWire admin fieldgroup editor. Field definitions (type changes, new fields from scratch) are planned for a future release. Try it: "Add a summary field to the blog_post template on both sites. Dry-run first." Three-tier conflict classifier Every planned fieldgroup change is rated safe, warning, or danger before anything is written. Dangerous changes are blocked unless you explicitly force them. What this means for you: The agent won't accidentally remove title, break a FormBuilder template, or delete a required field without warning you first. You get a plain-language explanation of what could go wrong before you commit to the change. Try it: "Remove blog_date from the blog_post template. Dry-run first and flag anything dangerous before applying." Cross-site fieldtype drift detection When pushing fieldgroup changes to both local and production at once, PromptWire checks that each field has the same fieldtype on both sides. What this means for you: You won't accidentally push a change that looks fine locally but would break production because your local site uses CroppableImage3 and production still uses the standard Image fieldtype. The tool stops and tells you to fix the drift first. Try it: "Add an images field to the blog_post template on both local and production. Dry-run on both sites and stop if the fieldtypes don't match." Frontend-usage scan (v1.11.1) Before removing a field from a template, PromptWire scans your PHP templates for hardcoded references to that field name. What this means for you: If your contact form hardcodes a field in PHP, removing it from the fieldgroup won't silently break the form — you'll get a warning with the exact files and line numbers, so you can update the template first. Try it: "Remove your_email from the contact template's fieldgroup. Dry-run first and show me any template files that still reference it." v1.12 — Deploy safety and workflow fixes pw_site_sync no longer pushes modules by default Full site sync now skips the site/modules folder unless you explicitly ask for it. What this means for you: A routine "sync everything to production" deploy won't accidentally overwrite a module hotfix on the live site, or push half-finished module code from dev. When you do want to ship a plugin update, pass pushModules: true. Dry-run output tells you when module files are excluded. Try it: "Sync everything to production with backup and maintenance mode. Dry-run first." Or, when shipping a module update: "Sync everything to production including module files. Dry-run first." pw_health.writesEnabled is now accurate The health check no longer reports writes as disabled when they actually work. What this means for you: If you check site health and see writes enabled, you can trust it. The response also explains why (CLI, API key, IP allowlist, etc.). Try it: "Check the health of both local and production and confirm writes are enabled on each." File sync metadata fixes (v1.12.1) File sync now uses the correct local page ID, syncs file descriptions from YAML, and can update a description without re-uploading the file. What this means for you: Download page ZIPs sync reliably even when local and remote page IDs differ. You can change a file description in YAML and push just that metadata — no need to re-upload large binaries. Try it: "Pull the download page, update the ZIP file description in the YAML, and push the metadata change to production without re-uploading the file." NEW* matrix placeholders (v1.12.2) When creating a new page in YAML, repeater and matrix items can use placeholder IDs like NEW1 instead of needing real database IDs. What this means for you: You can scaffold a page with multiple matrix blocks in one publish-and-push pass — no more adding empty matrix items in the admin first, then pulling, then editing. Try it: "Create a landing page under /services/ with three page-builder matrix blocks — a hero, a text section, and a call to action. Use NEW placeholders so the items are created on publish. Dry-run first." CLI remote-push guard (v1.12.3) The PHP command-line tool now refuses remote targets with a clear error instead of pretending it worked. What this means for you: Running page:push --targets=remote from the CLI won't silently update only your local database. Use Cursor for production pushes instead. Try it: "Push the About page to production. Dry-run first, then apply." pw_page_rename (v1.12.5) Renames a page slug on local, remote, or both, and automatically moves your local sync folder to match. What this means for you: Change a page URL for SEO or docs restructuring by describing it in Cursor, with a dry-run preview first. If PagePathHistory is installed, old URLs redirect automatically. Your site/assets/pw-mcp/folder is renamed to match. Try it: "Rename /guides/old-slug/ to new-slug on both local and production. Dry-run first." Remote API error clarity (v1.12.6) Errors from production are now shown as the actual message — "Page not found", "Template not found" — instead of a generic connectivity error. What this means for you: When a push fails, you see the real reason and the agent can fix it. ProCache users also get a dedicated cache-clear target. Try it: "Push the new FAQ page to production. If it fails, show me the exact error and suggest a fix." "Clear ProCache on production after deploying template changes." Publish duplicate fix (v1.12.7) Publishing to production now tries to update an existing page first, and only creates if the page doesn't exist. What this means for you: If a previous publish was interrupted, retrying won't create a duplicate pagename-1 orphan cluttering your site tree. Try it: "Publish the FAQ page to production. If it already exists from a failed attempt, update it instead of creating a duplicate." Quick links Docs: https://www.peterknight.digital/docs/promptwire/v1/ Changelog: https://www.peterknight.digital/docs/promptwire/v1/changelog/ MCP Tools Reference: https://www.peterknight.digital/docs/promptwire/v1/tools-reference/ Prompt Recipes: https://www.peterknight.digital/docs/promptwire/v1/prompt-recipes/ Page Slug Rename: https://www.peterknight.digital/docs/promptwire/v1/page-rename/ Happy to answer questions or walk through any of the workflows above. Cheers, P
-
Getting 403 errors repeatedly when viewing by unread. That’s the best way to browse imho, so id love to see it fixed. 🙏
-
module Tickets: private customer support and helpdesk workflows
Peter Knight replied to maximus's topic in Modules/Plugins
Hi M I tested by entering a ticket on your LQRS site. P -
Hey Just throwing this in here in case it's of use to anyone. If anyone is looking for a good, locally installable project dashboard and management tool, I've had good experience lately with NocoDB - https://nocodb.com/. It has a free version for local installation, and setting up with Docker was a breeze. Anytime I am working on a project within my AI tool and think of a feature, discover a bug or want to capture an idea, I use the MCP to send it to my NoCo table. Some screenshots below. But this is just my evolving setup. It's extremely flexible and likely to adapt comftrably to your own requirements. I don't have any affiliation with the company or product BTW.
-
module Liora: conversational answers and visitor-demand insights
Peter Knight replied to maximus's topic in Modules/Plugins
Hi @maximus this looks brilliant and really useful, actually. I'd like to implement this soon on my own Modules documentation. I think it could be really helpful to users. One thing I didn't understand or didn't quite catch was where the AI fetches it's answers. Does it use existing public pages from the LQRs site as the only source of search results and perhaps you have some editorial guidelines wrapped around that? For example, one of my clients is a law firm, and the accuracy of the answers would need to be 100% accurate. Any hallucination or incorrect info could result in industry regulations fines etc. Ok, that's an extreme example, but it helps illustrate the point. Cheers P -
New blog: Interview with Maxim Semenov + weekly update
Peter Knight replied to ryan's topic in News & Announcements
I loved reading this @maximus. Your adventures, projects, life and insights etc …all very interesting and beautifully articulated too. Thanks for the mention too. Works both ways. Inspiration and modules are flowing freely across the forums and platform and you’re certainly driving things forward. This is what PWAI looks like. It’s always exciting waking up, checking the forums and reading what you’ve done next. -
MediaHub 1.19.51 - available + offer
Peter Knight replied to Peter Knight's topic in Modules/Plugins
Oh, thanks David ☺️ -
Hi Sofie @Coachcenter Not personally looking to pitch for this but did you find someone to work on the site? Cheers Peter
- 1 reply
-
- 1
-
-
Stuck after adding Database info on Install
Peter Knight replied to lonetour's topic in Getting Started
What's available if you try to login? IE visit yourdomain.com/processwire ? -
InviteAccess — restrict staging site access with invite codes
Peter Knight replied to maximus's topic in Modules/Plugins
I tried this earlier today and was really impressed. Thanks for making it. I ran into an issue with the /processwire/ admin login page being blocked by the invite gate when the site is accessed via Plesk's built-in site preview. Essentially, the module was treating /processwire/ as a regular page and showing the invite form instead of letting me through to the ProcessWire login. The fix that worked for me was adding a fallback check in checkAccess(): if (preg_match('#/processwire(/|$)#', $requestUrl)) return; Have you encountered this with Plesk preview before? If you don't use Plesk, I am happy to open an issue or PR on GitHub and provide more details. -
Hey everyone Well, last week turned into this week, and 1.19.50 turned into 1.19.51. So apologies for the slight delay, but I do have a larger release and a special offer for you. Get an extra 20% off any plan using the discount code: wowmediahub11951 It's good for the first three signups only. What’s new in 1.19.51 YouTube and Vimeo as library assets YouTube and Vimeo in MediaHub fields and rich text Inline audio and video preview Preview covers for PDFs, audio, and documents German admin UI Front End Editing Resizable library sidebar and much more... Full details on the blog, short version below. https://www.peterknight.digital/blog/posts/mediahub-1-19-51-release/ YouTube and Vimeo as library assets Paste a YouTube or Vimeo URL into Import → By URL. MediaHub creates an embed asset without storing the video file. Provider thumbnails show in the library; optional custom covers are available when you want your own poster. YouTube and Vimeo in fields and rich text Pick embeds from the same library as images and PDFs. Insert into MediaHub fields or TinyMCE with alignment, max width, and playback options — including start-at. Optional image captions (figure/figcaption) are also available in the MediaHub image dialog. Inline audio and video preview On the asset detail page, play supported audio and video with native browser controls — handy for a quick check before you use the file. BTW that track Feuervogel is by our very own @Stefanowitsch and his band Dayfly’s Diary. Buy See the Light on Bandcamp. Preview covers PDFs and audio can get an automatic cover on import where the server supports it (first PDF page, embedded artwork). Or pick any library image or crop as a manual override. Covers show across the library, picker, and inputfield cards. German admin UI Bundled Deutsch translation for the full MediaHub interface. With Language Support and a de language installed, translations import on module refresh. Front End Editing (Beta) The MediaHub TinyMCE button works with ProcessWire’s PageFrontEdit. Image alignment survives save on the live site. Resizable library sidebar On desktop, drag the sidebar edge to widen or narrow collections/labels. The width is remembered for next time. That's it. Thanks for reading 🙂 Peter Full details, screenshots, and the full changelog: https://www.peterknight.digital/blog/posts/mediahub-1-19-51-release/ Downloads (licensed users): https://www.peterknight.digital/downloads/
-
SEO Neo 1.1.4 is available and includes a few fixes around breadcrumbList JSON-LD validation Fixed: BreadcrumbList ListItem nodes now use nested item objects each crumb is emitted as { "@type": "ListItem", "position": N, "item": { "@id": "<canonical URL>", "name": "<title>" } } instead of a flat name + URL string. Stricter structured-data validators (including common site-audit tools) require item.name when validating against Google's rich-result schema. Canonical URLs for every crumb ancestor breadcrumbs now use getCanonical() rather than httpUrl, keeping www/https/slash policy consistent across the trail. Empty-title fallback crumbs skip pages with no resolvable label; the homepage falls back to Home, other pages to the page name when the title is empty.
-
- 2
-
-
Interesting stuff. I love that GPT 5.X has a sense of humour. I wonder if that sense of humour is universal or if it's evolved during your sessions. I actually had to revert to Composer 2.5 recently in Cursor and found it surprisingly capable for a lot of mid-level work. For example, I am moving 2 websites from Vercel and Vue apps back into Processwire, and it's very happy churning away at the task(s) and bumbles along without complaints. It made me realise that I need to be more discerning about my AI delegation. IE I don't need to hand mid-level tasks to high-end models. And I've been experimenting beyond a single platform too. IE looking at OpenCode and their BigPickle bundle and GLM 5.2. I've not used GLM 5.2 enough to get a sense of what it likes to handle. But normally my go-to is Sonnet 4.6, and like yourself, I have a good sense of what I can ask it to do and where it might have struggles. On the Sonnet 5 front, I do like it. It seems a bit more surgical and technical than 4.6. Maybe more competent with less personality. If you know what I mean. Lots to read in your response so thanks for sharing.